用谷歌的矛,攻破谷歌的盾!
(给程序员的那些事加星标)
原创整理:程序员的那些事(ID:iProgrammer)
1 月 5 日,GitHub 趋势榜中排第二的开源项目是 uncaptcha2,它是最近美国马里兰州大学 CS 系的几位研究员一起公开的。该项目宣称,攻破(当前最新版的)ReCaptcha 的准确率达到了 91%。
ReCaptcha 是什么东西?
对 IT 圈的大多数人来说,ReCaptcha 应该不陌生,它是一种防机器验证机制。ReCaptcha 起初是由卡耐基梅隆大学(CMU)设计,将 OCR(光学自动识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片。那些网站的用户在正确识别出这些特定字符之后,其答案便会被传回 CMU。这样一来既起到了验证码的效果,又可以帮助进行古籍的数字化工作(可以称为人肉 OCR)。
2009 年 Google 收购了 ReCaptcha。Google 让 ReCaptcha 里显示谷歌街景的图片。这样经常会从街景里提取如街道名称、交通标志、门牌号等数据。
2012 年一个谷歌研究团队几乎百分之百破解了 ReCaptcha 系统。于是谷歌在 ReCaptcha 当中加入了语音和图像验证的方式。不过这种综合验证方式,如今又受到了挑战。
uncaptcha2 是什么东西?
从 uncaptcha2 的名字就知道是做什么的了。2017 年 4 月,马里兰州大学那几位研究员发布了 uncaptcha,当时攻破 ReCaptcha 语音验证的准确率达到了 85%。
uncaptcha2 的机制
简单来说,
1. 访问有 ReCaptcha 验证码的网站;
2. 选择语音验证;
3. 下载语音验证的相应音频文件;
4. 用谷歌的 Speech-to-Text API,把音频转成文本;(当然也可以用其他厂的同类 API)
5. 解析返回来的文本,然后在文本框输入;
6. 点击「提交」按钮,然后确认是否成功;
准确率超高的 Speech-to-Text
在谷歌 Speech-to-Text 的主页,程序员的那些事看到了这几个宣传语:
利用机器学习技术将语音转换为文本,无论音频长短都没有问题。
运用最先进的深度学习神经网络算法来分析音频,获得准确性无与伦比的语音识别结果。随着 Google 不断改进其产品所用的内部语音识别技术,Cloud Speech-to-Text 的准确性会逐步提高。
用谷歌牛逼的 Speech-to-Text ,来攻破谷歌牛逼的 ReCaptcha。这操作,真是 666!
不要拿 uncaptcha2 干坏事咯
在 uncaptcha2 主页,有句特别提醒:
https://github.com/ecthros/uncaptcha2
⚠️ This code works on the most recent version of ReCaptcha. Only use on sites you control for educational purposes. ⚠️
本项目代码可适用大多数版本的 ReCaptcha。仅供你自控站点做研究目的使用!!!
2018 年 6 月,马里兰州大学的那些研究员联系了谷歌 ReCaptcha 团队。此后不久,他们还演示了这种攻击的完整功能版本。
研究员们披露之后又等待了 6 个月,以便给 ReCaptcha 团队时间来升级。ReCaptcha 团队知道这个攻击方法,尽管 uncaptcha2 目前的成功率很高,但 ReCaptcha 团队已经确认他们可以接受马里兰州大学研究员公布 uncaptcha2 的代码。
这个攻击方法被认为超出了谷歌 Bug 悬赏计划的范围。要不然,uncaptcha2 的研究员们可以拿到一笔悬赏金的。
推荐阅读
(点击标题可跳转阅读)
关注「程序员的那些事」加星标,不错过圈内事
喜欢就点一下「好看」呗~